package cn.wolfcode.wolf2w.redis.service;

import cn.wolfcode.wolf2w.redis.vo.StatisticsVO;

import java.util.List;

/**
 * 对于统计数的缓存操作
 */
public interface IStatisticsVORedisService {
    /**
     * 增加文章的阅读数
     * @param sid 攻略文章id
     * @param num 增加的次数（默认看一次加一次）
     */
    void addViewnum(String sid, int num);

    /**
     * 查询攻略的统计数据
     * @param sid 攻略id
     * @return
     */
    StatisticsVO getStatisticsVOInRedis(String sid);

    /**
     * 查询游记的统计数据
     * @param tid 攻略id
     * @return
     */
    StatisticsVO getStatisticsVOByTravel(String tid);

    /**
     * 把vo对象保存到redis库中
     * @param vo
     */
    void setStatisticsVOInRedis(StatisticsVO vo);

    /**
     * 增加攻略的评论数
     * @param sid 攻略id
     * @param num
     */
    void addReplynum(String sid, int num);

    /**
     * 收藏攻略
     * @param sid 攻略id
     * @param uid 用户id
     * @return true：收藏攻略 false：取消收藏
     */
    boolean isAddFavor(String sid, String uid);

    /**
     * 获取当前用户的收藏列表
     * @param userId
     */
    List<String> getFavorSids(String userId);

    /**
     * 攻略的点赞
     * @param sid
     * @param uid
     * @return true:点赞 false：取消点赞
     */
    boolean strategyThumbup(String sid, String uid);

    /**
     * 获取所有的vo对象数据
     * @param pattern
     * @return
     */
    List<StatisticsVO> getAllStatisticsVO(String pattern);

    /**
     * 根据攻略id判断是否需要写入缓存中
     * @param sid
     * @return true：不写入 false：写入数据
     */
    boolean isExistSid(String sid);

    /**
     * 游记的点赞
     * @param tid
     * @param uid
     * @return
     */
    boolean thumbUp(String tid,String uid);
}
